from uitls.dos_cmd import DosCmd
class Port:
    def port_is_used(self,port_num):
        #判断端口 是否被占用,flag为true就是为被占用，为false代表没被占用
        flag=None
        self.dos=DosCmd()
        command='lsof -i:'+str(port_num)
        result=self.dos.excute_cmd_result(command)
        if len(result)>0:
            flag=True
        else:
            flag=False
        return flag

    def create_port_list(self,start_port,device_list):
        '''
        start_port 4700
        生成可用端口
        :param start_port:
        :param device_list:
        :return:
        '''
        port_list=[]#定义列表
        if len(device_list)!=None:
            while len(port_list)!=len(device_list):
                if self.port_is_used(start_port)!=True:
                    port_list.append(start_port)
                start_port=start_port+1
            return port_list
        else:
            print('生成可用端口失败')
            return None



if __name__ == '__main__':
    port=Port()
    # print(port.port_is_used('4723'))#查看4723端口是否被占用，返回True就是被占用
    li=[1,2,3,4,5,6,7]
    print(port.create_port_list(start_port=4700,device_list=li))